using SharpKit.JavaScript;

namespace SharpKit.Rx
{
	[SharpKit.JavaScript.JsType(Name="Rx.Observer",Mode=SharpKit.JavaScript.JsMode.Prototype,Export=false,IgnoreGenericMethodArguments=true,AutomaticPropertiesAsFields=true,IgnoreGenericTypeArguments=true,PropertiesAsFields=true)]
	public static class Observer
	{
		[SharpKit.JavaScript.JsMethod(ExtensionImplementedInInstance=true)]
		public static IObserver<T> Create<T>(JsAction<T> onNext)
		{
			return null;
		}
		[SharpKit.JavaScript.JsMethod(ExtensionImplementedInInstance=true)]

		public static IObserver<T> Create<T>(JsAction<T> onNext, JsAction<JsError> onError)
		{
			return null;
		}
		[SharpKit.JavaScript.JsMethod(ExtensionImplementedInInstance=true)]

		public static IObserver<T> Create<T>(JsAction<T> onNext, JsAction<JsError> onError, JsAction onCompleted)
		{
			return null;
		}
	}
	[SharpKit.JavaScript.JsType(Name="Rx.Observer",Mode=SharpKit.JavaScript.JsMode.Prototype,Export=false,IgnoreGenericMethodArguments=true,AutomaticPropertiesAsFields=true,IgnoreGenericTypeArguments=true,PropertiesAsFields=true)]

	public class Observer<T> : IObserver<T>
	{
		public Observer(JsAction<JsObject> onNext)
		{
		}

		public Observer(JsAction<JsObject> onNext, JsAction<JsObject> onError)
		{
		}

		public Observer(JsAction<JsObject> onNext, JsAction<JsObject> onError, JsAction onCompleted)
		{
		}
		[SharpKit.JavaScript.JsMethod(ExtensionImplementedInInstance=true)]

		public void OnCompleted()
		{
		}
		[SharpKit.JavaScript.JsMethod(ExtensionImplementedInInstance=true)]

		public void OnError(JsError value)
		{
		}
		[SharpKit.JavaScript.JsMethod(ExtensionImplementedInInstance=true)]

		public void OnNext(T value)
		{
		}
	}
}